#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

/* 独立占用0-3G的虚拟空间 */
int abc = 100;

void child() {
	abc = 200;
	printf("in child process %d...%d\n", getpid(), abc);
	sleep(2);
}

void parent() {
	sleep(1);
	printf("in parent process %d...%d\n", getpid(), abc);
}

int main() {
	printf("fork test...\n");
	pid_t pid;

	pid = fork();
	if (pid < 0) {
		perror("fork");
		exit(2);
	}
	// 此时 系统有两个进程和CPU进行抢，后面代码父 子 进程都要执行
	switch (pid) {
		case 0:		// 此时在子进程中
			child();
			break;
		default:	// pid为大于0的数，表示进程号，父进程生成子进程的ID号
			parent();
			break;
	}

	return 0;
}